<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Elixir (programming language)</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Elixir_(programming_language)"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Elixir_programming_language rootpage-Elixir_programming_language skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Elixir (programming language)</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<style data-mw-deduplicate="TemplateStyles:r1251242444">
/* start https://en.wikipedia.org/ */
.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style>
<style data-mw-deduplicate="TemplateStyles:r1295905060">
/* start https://en.wikipedia.org/ */
.mw-parser-output .infobox-subbox{padding:0;border:none;margin:-3px;width:auto;min-width:100%;font-size:100%;clear:none;float:none;background-color:transparent}.mw-parser-output .infobox-3cols-child{margin:auto}.mw-parser-output .infobox .navbar{font-size:100%}@media screen{html.skin-theme-clientpref-night .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media(min-width:640px){body.skin--responsive .mw-parser-output .infobox-table{display:table!important}body.skin--responsive .mw-parser-output .infobox-table>caption{display:table-caption!important}body.skin--responsive .mw-parser-output .infobox-table>tbody{display:table-row-group}body.skin--responsive .mw-parser-output .infobox-table th,body.skin--responsive .mw-parser-output .infobox-table td{padding-left:inherit;padding-right:inherit}}
/* end https://en.wikipedia.org/ */
</style><table class="infobox vevent"><tbody><tr><th colspan="2" class="infobox-above" style="background-color:#e0e0e0;">Elixir</th></tr><tr><td colspan="2" class="infobox-image"><div class="infobox-caption">Elixir</div></td></tr><tr><th scope="row" class="infobox-label"><a href="Programming_paradigm" title="Programming paradigm">Paradigms</a></th><td class="infobox-data"><a href="Multi-paradigm_programming_language" class="mw-redirect" title="Multi-paradigm programming language">multi-paradigm</a>: <a href="Functional_programming" title="Functional programming">functional</a>, <a href="Concurrent_programming" class="mw-redirect" title="Concurrent programming">concurrent</a>, <a href="Distributed_programming" class="mw-redirect" title="Distributed programming">distributed</a>, <a href="Process-oriented_programming" title="Process-oriented programming">process-oriented</a></td></tr><tr><th scope="row" class="infobox-label"><a href="Software_design" title="Software design">Designed by</a></th><td class="infobox-data">José Valim</td></tr><tr><th scope="row" class="infobox-label">First appeared</th><td class="infobox-data">2012<span style="display:none"> (<span class="bday dtstart published updated">2012</span>)</span></td></tr><tr><td colspan="2" class="infobox-full-data"></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="Software_release_life_cycle" title="Software release life cycle">Stable release</a></th><td class="infobox-data"><div style="margin:0px;">1.18.4<sup id="cite_ref-wikidata-38d73dbc67fe379aec44b4c951a0b1d72113a0cd-v20_1-0" class="reference"><a href="#cite_note-wikidata-38d73dbc67fe379aec44b4c951a0b1d72113a0cd-v20-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
/ 21 May 2025<span style="display:none"> (<span class="bday dtstart published updated">21 May 2025</span>)</span></div></td></tr><tr style="display:none"><td colspan="2">
</td></tr><tr><th scope="row" class="infobox-label"><a href="Type_system" title="Type system">Typing discipline</a></th><td class="infobox-data"><a href="Type_system" title="Type system">dynamic</a>, <a href="Strong_typing" class="mw-redirect" title="Strong typing">strong</a></td></tr><tr><th scope="row" class="infobox-label"><a href="Computing_platform" title="Computing platform">Platform</a></th><td class="infobox-data"><a href="Erlang_(programming_language)" title="Erlang (programming language)">Erlang</a></td></tr><tr><th scope="row" class="infobox-label"><a href="Software_license" title="Software license">License</a></th><td class="infobox-data"><a href="Apache_License_2.0" class="mw-redirect" title="Apache License 2.0">Apache License 2.0</a><sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup></td></tr><tr><th scope="row" class="infobox-label"><a href="Filename_extension" title="Filename extension">Filename extensions</a></th><td class="infobox-data">.ex, .exs</td></tr><tr><th scope="row" class="infobox-label">Website</th><td class="infobox-data"><span class="url"><a rel="nofollow" class="external text" href="https://elixir-lang.org">elixir-lang<wbr>.org</a></span></td></tr><tr><th colspan="2" class="infobox-header" style="background-color: #EEEEEE;">Influenced by</th></tr><tr><td colspan="2" class="infobox-full-data"><a href="Clojure" title="Clojure">Clojure</a>, <a href="Erlang_(programming_language)" title="Erlang (programming language)">Erlang</a>, <a href="Ruby_(programming_language)" title="Ruby (programming language)">Ruby</a></td></tr><tr><th colspan="2" class="infobox-header" style="background-color: #EEEEEE;">Influenced</th></tr><tr><td colspan="2" class="infobox-full-data"><a href="Gleam_(programming_language)" title="Gleam (programming language)">Gleam</a>, <a href="LFE_(programming_language)" title="LFE (programming language)">LFE</a></td></tr></tbody></table>
<p><b>Elixir</b> is a <a href="Functional_programming" title="Functional programming">functional</a>, <a href="Concurrent_computing" title="Concurrent computing">concurrent</a>, <a href="High-level_programming_language" title="High-level programming language">high-level</a> <a href="General-purpose_programming_language" title="General-purpose programming language">general-purpose</a> <a href="Programming_language" title="Programming language">programming language</a> that runs on the <a href="BEAM_(Erlang_virtual_machine)" title="BEAM (Erlang virtual machine)">BEAM</a> <a href="Virtual_machine" title="Virtual machine">virtual machine</a>, which is also used to implement the <a href="Erlang_(programming_language)" title="Erlang (programming language)">Erlang</a> programming language.<sup id="cite_ref-:0_3-0" class="reference"><a href="#cite_note-:0-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> Elixir builds on top of Erlang and shares the same abstractions for building <a href="Distributed_computing" title="Distributed computing">distributed</a>, <a href="Fault-tolerant" class="mw-redirect" title="Fault-tolerant">fault-tolerant</a> applications. Elixir also provides tooling and an <a href="Extensible" class="mw-redirect" title="Extensible">extensible</a> design. The latter is supported by compile-time <a href="Metaprogramming" title="Metaprogramming">metaprogramming</a> with <a href="Macro_(computer_science)" title="Macro (computer science)">macros</a> and <a href="Polymorphism_(computer_science)" title="Polymorphism (computer science)">polymorphism</a> via protocols.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</p><p>The community organizes yearly events in the United States,<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> Europe,<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> and Japan,<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> as well as minor local events and conferences.<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup>
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="History">History</h2></div>
<p>José Valim created the Elixir programming language as a <a href="Research_and_development" title="Research and development">research and development</a> project at Plataformatec. His goals were to enable higher extensibility and productivity in the Erlang VM while maintaining compatibility with Erlang's ecosystem.<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup>
</p><p>Elixir is aimed at large-scale sites and apps. It uses features of <a href="Ruby_(programming_language)" title="Ruby (programming language)">Ruby</a>, Erlang, and <a href="Clojure" title="Clojure">Clojure</a> to develop a high-concurrency and low-latency language. It was designed to handle large data volumes. Elixir is also used in telecommunications, e-commerce, and finance.<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup>
</p><p>In 2021, the Numerical Elixir effort was announced with the goal of bringing machine learning, neural networks, GPU compilation, data processing, and computational notebooks to the Elixir ecosystem.<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Versioning">Versioning</h2></div>
<p>Each of the minor versions supports a specific range of Erlang/<a href="Open_Telecom_Platform" title="Open Telecom Platform">OTP</a> versions.<sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup> The current stable release version is 1.18.4<sup id="cite_ref-wikidata-38d73dbc67fe379aec44b4c951a0b1d72113a0cd-v20_1-1" class="reference"><a href="#cite_note-wikidata-38d73dbc67fe379aec44b4c951a0b1d72113a0cd-v20-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> .
</p>
<div class="mw-heading mw-heading2"><h2 id="Features">Features</h2></div>
<ul><li><a href="Compiler" title="Compiler">Compiles</a> to <a href="Bytecode" title="Bytecode">bytecode</a> for the <a href="BEAM_(Erlang_virtual_machine)" title="BEAM (Erlang virtual machine)">BEAM virtual machine</a> of <a href="Erlang_(programming_language)" title="Erlang (programming language)">Erlang</a>.<sup id="cite_ref-elixirhome_15-0" class="reference"><a href="#cite_note-elixirhome-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> Full interoperability with Erlang code, without <a href="Runtime_(program_lifecycle_phase)" class="mw-redirect" title="Runtime (program lifecycle phase)">runtime</a> impact.</li>
<li>Scalability and fault-tolerance, thanks to Erlang's lightweight concurrency mechanisms<sup id="cite_ref-elixirhome_15-1" class="reference"><a href="#cite_note-elixirhome-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup></li>
<li><a href="Mix_(build_tool)" title="Mix (build tool)">Built-in tooling</a> for managing dependencies, code compilation, running tests, formatting code, remote debugging and more.</li>
<li>An interactive <a href="Read%E2%80%93eval%E2%80%93print_loop" title="Read–eval–print loop">REPL</a> inside running programs, including <a href="Phoenix_(web_framework)" title="Phoenix (web framework)">Phoenix</a> web servers, with code reloading and access to internal state</li>
<li>Everything is an <a href="Expression_(computer_science)" title="Expression (computer science)">expression</a><sup id="cite_ref-elixirhome_15-2" class="reference"><a href="#cite_note-elixirhome-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup></li>
<li><a href="Pattern_matching" title="Pattern matching">Pattern matching</a><sup id="cite_ref-elixirhome_15-3" class="reference"><a href="#cite_note-elixirhome-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> to promote assertive code<sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup></li>
<li>Type hints for static analysis tools</li>
<li>Immutable data, with an emphasis, like other <a href="Functional_programming" title="Functional programming">functional</a> languages, on <a href="Recursion_(computer_science)" title="Recursion (computer science)">recursion</a> and <a href="Higher-order_function" title="Higher-order function">higher-order functions</a> instead of <a href="Side-effect_(computer_science)" class="mw-redirect" title="Side-effect (computer science)">side-effect</a>-based <a href="Loop_(computing)" class="mw-redirect" title="Loop (computing)">looping</a></li>
<li><a href="Shared_nothing_architecture" class="mw-redirect" title="Shared nothing architecture">Shared nothing concurrent programming</a> via message passing (<a href="Actor_model" title="Actor model">actor model</a>)<sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup></li>
<li><a href="Lazy_evaluation" title="Lazy evaluation">Lazy</a> and <a href="Futures_and_promises" title="Futures and promises">async collections</a> with streams</li>
<li>Railway oriented programming via the <code>with</code> construct<sup id="cite_ref-18" class="reference"><a href="#cite_note-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup></li>
<li>Hygienic <a href="Metaprogramming" title="Metaprogramming">metaprogramming</a> by direct access to the <a href="Abstract_syntax_tree" title="Abstract syntax tree">abstract syntax tree</a> (AST).<sup id="cite_ref-elixirhome_15-4" class="reference"><a href="#cite_note-elixirhome-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> Libraries often implement small <a href="Domain-specific_language" title="Domain-specific language">domain-specific languages</a>, such as for databases or testing.</li>
<li>Code execution at compile time. The Elixir compiler also runs on the BEAM, so modules that are being compiled can immediately run code which has already been compiled.</li>
<li><a href="Polymorphism_(computer_science)" title="Polymorphism (computer science)">Polymorphism</a> via a mechanism called protocols. <a href="Dynamic_dispatch" title="Dynamic dispatch">Dynamic dispatch</a>, as in <a href="Clojure" title="Clojure">Clojure</a>, however, without <a href="Multiple_dispatch" title="Multiple dispatch">multiple dispatch</a> because Elixir protocols dispatch on a single type.</li>
<li>Support for documentation via Python-like docstrings in the <a href="Markdown" title="Markdown">Markdown</a> formatting language<sup id="cite_ref-elixirhome_15-5" class="reference"><a href="#cite_note-elixirhome-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup></li>
<li><a href="Unicode" title="Unicode">Unicode</a> support and <a href="UTF-8" title="UTF-8">UTF-8</a> strings</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Examples">Examples</h2></div>
<p>The following examples can be run in an <code>iex</code> <a href="Shell_(computing)" title="Shell (computing)">shell</a> or saved in a file and run from the <a href="Command_line" class="mw-redirect" title="Command line">command line</a> by typing <code>elixir <i><filename></i></code>.
</p><p>Classic <a href="%22Hello%2C_World!%22_program" title=""Hello, World!" program">Hello world</a> example:
</p>
<div class="mw-highlight mw-highlight-lang-iex mw-content-ltr" dir="ltr"><pre><span class="gp">iex> </span><span class="nc">IO</span><span class="o">.</span><span class="n">puts</span><span class="p">(</span><span class="s2">"Hello World!"</span><span class="p">)</span>
<span class="go">Hello World!</span>
</pre></div>
<p>Pipe operator:
</p>
<div class="mw-highlight mw-highlight-lang-iex mw-content-ltr" dir="ltr"><pre><span class="gp">iex> </span><span class="s2">"Elixir"</span><span class="w"> </span><span class="o">|></span><span class="w"> </span><span class="nc">String</span><span class="o">.</span><span class="n">graphemes</span><span class="p">()</span><span class="w"> </span><span class="o">|></span><span class="w"> </span><span class="nc">Enum</span><span class="o">.</span><span class="n">frequencies</span><span class="p">()</span>
<span class="go">%{"E" => 1, "i" => 2, "l" => 1, "r" => 1, "x" => 1}</span>
<span class="gp">iex> </span><span class="p">%{</span><span class="ss">values</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="o">..</span><span class="mi">5</span><span class="p">}</span><span class="w"> </span><span class="o">|></span><span class="w"> </span><span class="nc">Map</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="ss">:values</span><span class="p">)</span><span class="w"> </span><span class="o">|></span><span class="w"> </span><span class="nc">Enum</span><span class="o">.</span><span class="n">map</span><span class="p">(</span><span class="o">&</span><span class="w"> </span><span class="ni">&1</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span>
<span class="go">[2, 4, 6, 8, 10]</span>
<span class="gp">iex> </span><span class="p">%{</span><span class="ss">values</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="o">..</span><span class="mi">5</span><span class="p">}</span><span class="w"> </span><span class="o">|></span><span class="w"> </span><span class="nc">Map</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="ss">:values</span><span class="p">)</span><span class="w"> </span><span class="o">|></span><span class="w"> </span><span class="nc">Enum</span><span class="o">.</span><span class="n">map</span><span class="p">(</span><span class="o">&</span><span class="w"> </span><span class="ni">&1</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="o">|></span><span class="w"> </span><span class="nc">Enum</span><span class="o">.</span><span class="n">sum</span><span class="p">()</span>
<span class="go">30</span>
</pre></div>
<p><a href="Pattern_matching" title="Pattern matching">Pattern matching</a> (a.k.a. destructuring):
</p>
<div class="mw-highlight mw-highlight-lang-iex mw-content-ltr" dir="ltr"><pre><span class="gp">iex> </span><span class="p">%{</span><span class="ss">left</span><span class="p">:</span><span class="w"> </span><span class="n">x</span><span class="p">}</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">%{</span><span class="ss">left</span><span class="p">:</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="ss">right</span><span class="p">:</span><span class="w"> </span><span class="mi">8</span><span class="p">}</span>
<span class="gp">iex> </span><span class="n">x</span>
<span class="go">5</span>
<span class="gp">iex> </span><span class="p">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="bp">_</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">rest</span><span class="p">]}</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">]}</span>
<span class="gp">iex> </span><span class="n">rest</span>
<span class="go">[2, 3]</span>
</pre></div>
<p>Pattern matching with multiple clauses:
</p>
<div class="mw-highlight mw-highlight-lang-iex mw-content-ltr" dir="ltr"><pre><span class="gp">iex> </span><span class="k">case</span><span class="w"> </span><span class="nc">File</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="s2">"path/to/file"</span><span class="p">)</span><span class="w"> </span><span class="k">do</span>
<span class="gp">iex> </span><span class="w"> </span><span class="p">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="n">contents</span><span class="p">}</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="nc">IO</span><span class="o">.</span><span class="n">puts</span><span class="p">(</span><span class="s2">"found file: </span><span class="si">#{</span><span class="n">contents</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
<span class="gp">iex> </span><span class="w"> </span><span class="p">{</span><span class="ss">:error</span><span class="p">,</span><span class="w"> </span><span class="n">reason</span><span class="p">}</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="nc">IO</span><span class="o">.</span><span class="n">puts</span><span class="p">(</span><span class="s2">"missing file: </span><span class="si">#{</span><span class="n">reason</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
<span class="gp">iex> </span><span class="k">end</span>
</pre></div>
<p><a href="List_comprehension" title="List comprehension">List comprehension</a>:
</p>
<div class="mw-highlight mw-highlight-lang-iex mw-content-ltr" dir="ltr"><pre><span class="gp">iex> </span><span class="k">for</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o"><-</span><span class="w"> </span><span class="mi">1</span><span class="o">..</span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="n">rem</span><span class="p">(</span><span class="n">n</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">do</span><span class="p">:</span><span class="w"> </span><span class="n">n</span><span class="o">*</span><span class="n">n</span>
<span class="go">[1, 9, 25]</span>
</pre></div>
<p>Asynchronously reading files with streams:
</p>
<div class="mw-highlight mw-highlight-lang-elixir mw-content-ltr" dir="ltr"><pre><span class="mi">1</span><span class="o">..</span><span class="mi">5</span>
<span class="o">|></span><span class="w"> </span><span class="nc">Task</span><span class="o">.</span><span class="n">async_stream</span><span class="p">(</span><span class="o">&</span><span class="nc">File</span><span class="o">.</span><span class="n">read!</span><span class="p">(</span><span class="s2">"</span><span class="si">#{</span><span class="ni">&1</span><span class="si">}</span><span class="s2">.txt"</span><span class="p">))</span>
<span class="o">|></span><span class="w"> </span><span class="nc">Stream</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="k">fn</span><span class="w"> </span><span class="p">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="n">contents</span><span class="p">}</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="nc">String</span><span class="o">.</span><span class="n">trim</span><span class="p">(</span><span class="n">contents</span><span class="p">)</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="s2">""</span><span class="w"> </span><span class="k">end</span><span class="p">)</span>
<span class="o">|></span><span class="w"> </span><span class="nc">Enum</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="p">)</span>
</pre></div>
<p>Multiple function bodies with <a href="Guard_(computer_science)#Mathematics" title="Guard (computer science)">guards</a>:
</p>
<div class="mw-highlight mw-highlight-lang-elixir mw-content-ltr" dir="ltr"><pre><span class="kd">def</span><span class="w"> </span><span class="n">fib</span><span class="p">(</span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="ow">when</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="p">[</span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">],</span><span class="w"> </span><span class="ss">do</span><span class="p">:</span><span class="w"> </span><span class="n">n</span>
<span class="kd">def</span><span class="w"> </span><span class="n">fib</span><span class="p">(</span><span class="n">n</span><span class="p">),</span><span class="w"> </span><span class="ss">do</span><span class="p">:</span><span class="w"> </span><span class="n">fib</span><span class="p">(</span><span class="n">n</span><span class="o">-</span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">fib</span><span class="p">(</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span>
</pre></div>
<p>Relational databases with the Ecto library:
</p>
<div class="mw-highlight mw-highlight-lang-elixir mw-content-ltr" dir="ltr"><pre><span class="n">schema</span><span class="w"> </span><span class="s2">"weather"</span><span class="w"> </span><span class="k">do</span>
<span class="w"> </span><span class="n">field</span><span class="w"> </span><span class="ss">:city</span><span class="w"> </span><span class="c1"># Defaults to type :string</span>
<span class="w"> </span><span class="n">field</span><span class="w"> </span><span class="ss">:temp_lo</span><span class="p">,</span><span class="w"> </span><span class="ss">:integer</span>
<span class="w"> </span><span class="n">field</span><span class="w"> </span><span class="ss">:temp_hi</span><span class="p">,</span><span class="w"> </span><span class="ss">:integer</span>
<span class="w"> </span><span class="n">field</span><span class="w"> </span><span class="ss">:prcp</span><span class="p">,</span><span class="w"> </span><span class="ss">:float</span><span class="p">,</span><span class="w"> </span><span class="ss">default</span><span class="p">:</span><span class="w"> </span><span class="mf">0.0</span>
<span class="k">end</span>
<span class="nc">Weather</span><span class="w"> </span><span class="o">|></span><span class="w"> </span><span class="n">where</span><span class="p">(</span><span class="ss">city</span><span class="p">:</span><span class="w"> </span><span class="s2">"Kraków"</span><span class="p">)</span><span class="w"> </span><span class="o">|></span><span class="w"> </span><span class="n">order_by</span><span class="p">(</span><span class="ss">:temp_lo</span><span class="p">)</span><span class="w"> </span><span class="o">|></span><span class="w"> </span><span class="n">limit</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span><span class="w"> </span><span class="o">|></span><span class="w"> </span><span class="nc">Repo</span><span class="o">.</span><span class="n">all</span>
</pre></div>
<p>Sequentially spawning a thousand processes:
</p>
<div class="mw-highlight mw-highlight-lang-elixir mw-content-ltr" dir="ltr"><pre><span class="k">for</span><span class="w"> </span><span class="n">num</span><span class="w"> </span><span class="o"><-</span><span class="w"> </span><span class="mi">1</span><span class="o">..</span><span class="mi">1000</span><span class="p">,</span><span class="w"> </span><span class="ss">do</span><span class="p">:</span><span class="w"> </span><span class="n">spawn</span><span class="w"> </span><span class="k">fn</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="nc">IO</span><span class="o">.</span><span class="n">puts</span><span class="p">(</span><span class="s2">"</span><span class="si">#{</span><span class="n">num</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span><span class="w"> </span><span class="k">end</span>
</pre></div>
<p><a href="Async/await" title="Async/await">Asynchronously</a> performing a task:
</p>
<div class="mw-highlight mw-highlight-lang-elixir mw-content-ltr" dir="ltr"><pre><span class="n">task</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nc">Task</span><span class="o">.</span><span class="n">async</span><span class="w"> </span><span class="k">fn</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="n">perform_complex_action</span><span class="p">()</span><span class="w"> </span><span class="k">end</span>
<span class="n">other_time_consuming_action</span><span class="p">()</span>
<span class="nc">Task</span><span class="o">.</span><span class="n">await</span><span class="w"> </span><span class="n">task</span>
</pre></div><p>
</p><div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1266661725">
/* start https://en.wikipedia.org/ */
.mw-parser-output .portalbox{padding:0;margin:0.5em 0;display:table;box-sizing:border-box;max-width:175px;list-style:none}.mw-parser-output .portalborder{border:1px solid var(--border-color-base,#a2a9b1);padding:0.1em;background:var(--background-color-neutral-subtle,#f8f9fa)}.mw-parser-output .portalbox-entry{display:table-row;font-size:85%;line-height:110%;height:1.9em;font-style:italic;font-weight:bold}.mw-parser-output .portalbox-image{display:table-cell;padding:0.2em;vertical-align:middle;text-align:center}.mw-parser-output .portalbox-link{display:table-cell;padding:0.2em 0.2em 0.2em 0.3em;vertical-align:middle}@media(min-width:720px){.mw-parser-output .portalleft{margin:0.5em 1em 0.5em 0}.mw-parser-output .portalright{clear:right;float:right;margin:0.5em 0 0.5em 1em}}
/* end https://en.wikipedia.org/ */
</style>
<ul><li><a href="Concurrent_computing" title="Concurrent computing">Concurrent computing</a></li>
<li><a href="Distributed_computing" title="Distributed computing">Distributed computing</a></li>
<li><a href="Parallel_computing" title="Parallel computing">Parallel computing</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */
.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}
/* end https://en.wikipedia.org/ */
</style><div class="reflist reflist-columns references-column-width" style="column-width: 30em;">
<ol class="references">
<li id="cite_note-wikidata-38d73dbc67fe379aec44b4c951a0b1d72113a0cd-v20-1"><span class="mw-cite-backlink">^ <a href="#cite_ref-wikidata-38d73dbc67fe379aec44b4c951a0b1d72113a0cd-v20_1-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-wikidata-38d73dbc67fe379aec44b4c951a0b1d72113a0cd-v20_1-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/elixir-lang/elixir/releases/tag/v1.18.4">"Release 1.18.4"</a>. 21 May 2025<span class="reference-accessdate">. Retrieved <span class="nowrap">25 May</span> 2025</span>.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/elixir-lang/elixir/blob/master/LICENSE">"elixir/LICENSE at master · elixir-lang/elixir · GitHub"</a>. <i>GitHub</i>.</cite></span>
</li>
<li id="cite_note-:0-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-:0_3-0">^</a></b></span> <span class="reference-text"><cite class="citation news cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20180509080342/https://www.eliteinfoworld.com/blog/popular-programming-languages-2018/">"Most Popular Programming Languages of 2018 - Elite Infoworld Blog"</a>. 2018-03-30. Archived from <a rel="nofollow" class="external text" href="https://www.eliteinfoworld.com/blog/popular-programming-languages-2018/">the original</a> on 2018-05-09<span class="reference-accessdate">. Retrieved <span class="nowrap">2018-05-08</span></span>.</cite></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://elixir-lang.org">"Elixir"</a>. <i>José Valim</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2013-02-17</span></span>.</cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://elixirconf.com/">"ElixirConf"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2018-07-11</span></span>.</cite></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://elixirconf.eu/">"ElixirConf"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2018-07-11</span></span>.</cite></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://elixir-fest.jp/">"Erlang & Elixir Fest"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2019-02-18</span></span>.</cite></span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.elixir.london/">"Elixir LDN"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2018-07-12</span></span>.</cite></span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://empex.co/">"EMPEX - Empire State Elixir Conference"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2018-07-12</span></span>.</cite></span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><cite class="citation audio-visual cs1"><a rel="nofollow" class="external text" href="https://vimeo.com/53221562"><i>Elixir - A modern approach to programming for the Erlang VM</i></a><span class="reference-accessdate">. Retrieved <span class="nowrap">2013-02-17</span></span>.</cite></span>
</li>
<li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><cite class="citation audio-visual cs1"><a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=IZvpKhA6t8A"><i>José Valim - ElixirConf EU 2017 Keynote</i></a>. <a rel="nofollow" class="external text" href="https://ghostarchive.org/varchive/youtube/20211117/IZvpKhA6t8A">Archived</a> from the original on 2021-11-17<span class="reference-accessdate">. Retrieved <span class="nowrap">2017-07-14</span></span>.</cite></span>
</li>
<li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.welcometothejungle.com/en/articles/btc-elixir-jose-valim/">"Behinde the code: The One Who Created Elixir"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2019-11-25</span></span>.</cite></span>
</li>
<li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/elixir-nx">"Numerical Elixir (Nx)"</a>. <i><a href="GitHub" title="GitHub">GitHub</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-05-06</span></span>.</cite></span>
</li>
<li id="cite_note-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span> <span class="reference-text"><cite class="citation cs2"><a rel="nofollow" class="external text" href="https://github.com/elixir-lang/elixir"><i>Elixir is a dynamic, functional language designed for building scalable and maintainable applications: elixir-lang/elixir</i></a>, Elixir, 2019-04-21<span class="reference-accessdate">, retrieved <span class="nowrap">2019-04-21</span></span></cite></span>
</li>
<li id="cite_note-elixirhome-15"><span class="mw-cite-backlink">^ <a href="#cite_ref-elixirhome_15-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-elixirhome_15-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-elixirhome_15-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-elixirhome_15-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-elixirhome_15-4"><sup><i><b>e</b></i></sup></a> <a href="#cite_ref-elixirhome_15-5"><sup><i><b>f</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://elixir-lang.org/">"Elixir"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2014-09-07</span></span>.</cite></span>
</li>
<li id="cite_note-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://blog.plataformatec.com.br/2014/09/writing-assertive-code-with-elixir/">"Writing assertive code with Elixir"</a>. 24 September 2014<span class="reference-accessdate">. Retrieved <span class="nowrap">2018-07-05</span></span>.</cite></span>
</li>
<li id="cite_note-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-17">^</a></b></span> <span class="reference-text"><cite id="CITEREFLoder2015" class="citation book cs1">Loder, Wolfgang (12 May 2015). <a rel="nofollow" class="external text" href="https://leanpub.com/erlangandelixirforimperativeprogrammers"><i>Erlang and Elixir for Imperative Programmers</i></a>. "Chapter 16: Code Structuring Concepts", section title "Actor Model": Leanpub<span class="reference-accessdate">. Retrieved <span class="nowrap">7 July</span> 2015</span>.</cite><span class="cs1-maint citation-comment"><code class="cs1-code">{{cite book}}</code>: CS1 maint: location (link)</span></span>
</li>
<li id="cite_note-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-18">^</a></b></span> <span class="reference-text"><cite id="CITEREFWlaschin2013" class="citation web cs1">Wlaschin, Scott (May 2013). <a rel="nofollow" class="external text" href="https://fsharpforfunandprofit.com/rop/">"Railway Oriented Programming"</a>. <i>F# for Fun and Profit</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20210130221804/http://fsharpforfunandprofit.com/rop/">Archived</a> from the original on 30 January 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">28 February</span> 2021</span>.</cite></span>
</li>
</ol></div>
<div class="mw-heading mw-heading2"><h2 id="Further_reading">Further reading</h2></div>
<ul><li><cite id="CITEREFSimon_St._LaurentJ._Eisenberg2016" class="citation book cs1">Simon St. Laurent; J. Eisenberg (December 22, 2016). <i>Introducing Elixir: Getting Started in Functional Programming 2nd Edition</i>. <a href="O'Reilly_Media" title="O'Reilly Media">O'Reilly Media</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-1491956779</bdi>.</cite></li>
<li><cite id="CITEREFSasa_Juric2019" class="citation book cs1">Sasa Juric (January 12, 2019). <i>Elixir in Action 2nd Edition</i>. <a href="Manning_Publications" title="Manning Publications">Manning Publications</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-1617295027</bdi>.</cite></li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Programming_languages625" style="padding:3px"><table class="nowraplinks hlist mw-collapsible expanded navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div id="Programming_languages625" style="font-size:114%;margin:0 4em"><a href="Programming_language" title="Programming language">Programming languages</a></div></th></tr><tr><td class="navbox-abovebelow" colspan="2"><div>
<ul><li><a href="Comparison_of_programming_languages" title="Comparison of programming languages">Comparison</a></li>
<li><a href="Timeline_of_programming_languages" title="Timeline of programming languages">Timeline</a></li>
<li><a href="History_of_programming_languages" title="History of programming languages">History</a></li></ul>
</div></td></tr><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Ada_(programming_language)" title="Ada (programming language)">Ada</a></li>
<li><a href="ALGOL" title="ALGOL">ALGOL</a>
<ul><li><a href="Simula" title="Simula">Simula</a></li></ul></li>
<li><a href="APL_(programming_language)" title="APL (programming language)">APL</a></li>
<li><a href="Assembly_language" title="Assembly language">Assembly</a></li>
<li><a href="BASIC" title="BASIC">BASIC</a>
<ul><li><a href="Visual_Basic" title="Visual Basic">Visual Basic</a>
<ul><li><a href="Visual_Basic_(classic)" title="Visual Basic (classic)">classic</a></li>
<li><a href="Visual_Basic_(.NET)" title="Visual Basic (.NET)">.NET</a></li></ul></li></ul></li>
<li><a href="C_(programming_language)" title="C (programming language)">C</a></li>
<li><a href="C%2B%2B" title="C++">C++</a></li>
<li><a href="C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a></li>
<li><a href="COBOL" title="COBOL">COBOL</a></li>
<li><a href="Erlang_(programming_language)" title="Erlang (programming language)">Erlang</a>
<ul></ul></li>
<li><a href="Forth_(programming_language)" title="Forth (programming language)">Forth</a></li>
<li><a href="Fortran" title="Fortran">Fortran</a></li>
<li><a href="Go_(programming_language)" title="Go (programming language)">Go</a></li>
<li><a href="Haskell" title="Haskell">Haskell</a></li>
<li><a href="Java_(programming_language)" title="Java (programming language)">Java</a></li>
<li><a href="JavaScript" title="JavaScript">JavaScript</a></li>
<li><a href="Julia_(programming_language)" title="Julia (programming language)">Julia</a></li>
<li><a href="Kotlin_(programming_language)" title="Kotlin (programming language)">Kotlin</a></li>
<li><a href="Lisp_(programming_language)" title="Lisp (programming language)">Lisp</a></li>
<li><a href="Lua" title="Lua">Lua</a></li>
<li><a href="MATLAB" title="MATLAB">MATLAB</a></li>
<li><a href="ML_(programming_language)" title="ML (programming language)">ML</a>
<ul><li><a href="Caml" title="Caml">Caml </a>
<ul><li><a href="OCaml" title="OCaml">OCaml</a></li></ul></li></ul></li>
<li><a href="Pascal_(programming_language)" title="Pascal (programming language)">Pascal</a>
<ul><li><a href="Object_Pascal" title="Object Pascal">Object Pascal</a></li></ul></li>
<li><a href="Perl" title="Perl">Perl </a>
<ul><li><a href="Raku_(programming_language)" title="Raku (programming language)">Raku</a></li></ul></li>
<li><a href="PHP" title="PHP">PHP</a></li>
<li><a href="Prolog" title="Prolog">Prolog</a></li>
<li><a href="Python_(programming_language)" title="Python (programming language)">Python</a></li>
<li><a href="R_(programming_language)" title="R (programming language)">R</a></li>
<li><a href="Ruby_(programming_language)" title="Ruby (programming language)">Ruby</a></li>
<li><a href="Rust_(programming_language)" title="Rust (programming language)">Rust</a></li>
<li><a href="SAS_language" title="SAS language">SAS</a></li>
<li><a href="SQL" title="SQL">SQL</a></li>
<li><a href="Scratch_(programming_language)" title="Scratch (programming language)">Scratch</a></li>
<li><a href="Shell_script" title="Shell script">Shell</a></li>
<li><a href="Smalltalk" title="Smalltalk">Smalltalk</a></li>
<li><a href="Swift_(programming_language)" title="Swift (programming language)">Swift</a></li>
<li><i><a href="List_of_programming_languages" title="List of programming languages">more...</a></i></li></ul>
</div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div>
<ul><li><span class="noviewer" typeof="mw:File"><span title="List-Class article"></span></span> <b>Lists:</b> <a href="List_of_programming_languages" title="List of programming languages">Alphabetical</a></li>
<li><a href="List_of_programming_languages_by_type" title="List of programming languages by type">Categorical</a></li>
<li><a href="Generational_list_of_programming_languages" title="Generational list of programming languages">Generational</a></li>
<li><a href="Non-English-based_programming_languages" title="Non-English-based programming languages">Non-English-based</a></li>
<li><span class="noviewer" typeof="mw:File"><span title="Category"></span></span> Category</li></ul>
</div></td></tr></tbody></table></div>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1038841319">
/* start https://en.wikipedia.org/ */
.mw-parser-output .tooltip-dotted{border-bottom:1px dotted;cursor:help}
/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox authority-control" aria-labelledby="Authority_control_databases_frameless&#124;text-top&#124;10px&#124;alt=Edit_this_at_Wikidata&#124;link=https&#58;//www.wikidata.org/wiki/Q5362035#identifiers&#124;class=noprint&#124;Edit_this_at_Wikidata932" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Authority_control_databases_frameless&#124;text-top&#124;10px&#124;alt=Edit_this_at_Wikidata&#124;link=https&#58;//www.wikidata.org/wiki/Q5362035#identifiers&#124;class=noprint&#124;Edit_this_at_Wikidata932" style="font-size:114%;margin:0 4em">Authority control databases </div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">National</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://id.loc.gov/authorities/sh2015000669">United States</a></span></li><li><span class="uid"><span class="rt-commentedText tooltip tooltip-dotted" title="Elixir (programovací jazyk)"><a rel="nofollow" class="external text" href="https://aleph.nkp.cz/F/?func=find-c&local_base=aut&ccl_term=ica=ph1236496&CON_LNG=ENG">Czech Republic</a></span></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://www.nli.org.il/en/authorities/987007409094405171">Israel</a></span></li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://lux.collections.yale.edu/view/concept/a1b7cd3d-b576-4215-8a07-762587e17c74">Yale LUX</a></span></li></ul></div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-06-27" href="https://en.wikipedia.org/wiki/?title=Elixir_(programming_language)&oldid=1297629460">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>